﻿⎕SE.FontObj←'APL385 Unicode' 22
⍝ Quick Introduction to Conga
)load conga
)copy util DISP
NL←⎕UCS 13 10

⍝ --- Simple Clients ---
DRC.Init ''
DRC.Client 'C1' 'localhost' 13 'Text' 1000
DISP DRC.Wait'C1'
DRC.Close 'C1'

DRC.Client 'C1' 'www.dyalog.com' 80 'Text' 100000
DRC.Send 'C1' ('GET / HTTP/1.1',NL,'Host: www.dyalog.com:80',NL,NL)
(rc obj event data)←4↑DRC.Wait 'C1'
rc  ⍝ Return Code
obj ⍝ Object Name
event ⍝ Event Name
data~NL ⍝ Data without linefeeds
(rc obj event data)←4↑DRC.Wait 'C1'
⍴data
DRC.Close 'C1'

rc headers data←Samples.HTTPGet 'http://www.dyalog.com'
rc
headers
⍴data

⍝ --- A simple Server ---
                        DRC.Server 'TOD' 913 'Text' 1000
                        DRC.Wait 'TOD' 1000
DRC.Client 'C1' 'localhost' 913 'Text' 1000
                        DISP (rc obj event data)←4↑DRC.Wait 'TOD'
                        DRC.Send obj '16:15:00 14-10-2008' 1
DISP DRC.Wait 'C1'
DRC.Close 'C1'

                        DRC.Close 'TOD'
TODServer.Run&913 ⍝ Trace me!
DRC.Client 'C1' 'localhost' 913 'Text' 1000
DISP DRC.Wait 'C1'
DRC.Close 'C1'
TODServer.DONE←1

⍝ --- Command Mode ---
                        DRC.Server 'TOD' 913 ⍝ 'Command'
                        DRC.Wait 'TOD' 1000
DRC.Client 'C1' 'localhost' 913 ⍝ 'Command'
                        DISP (rc obj event data)←4↑DRC.Wait 'TOD'
DISP DRC.Send 'C1.CMD1' 'What time is it?'
                        DISP (rc obj event data)←4↑DRC.Wait 'TOD'
                        DRC.Respond obj ⎕TS
DISP DRC.Wait 'C1'
                        DRC.Close 'TOD'
DRC.Close 'C1'

)copy c:\conga\Dws\CongaDev.DWS APLTODServer
APLTODServer.Run&913 ⍝ Trace & change to Command Mode
DRC.Client 'C1' 'localhost' 913
DRC.Send 'C1.Q1' 'What time is it?'
DRC.Send 'C1.Q2' 'What time is it?'
DRC.Wait 'C1.Q2'
DRC.Wait 'C1.Q1'
{DRC.Send ('C1.',⍵) 'What time is it?'}¨'Q1' 'Q2' 'Q3' 'Q4'
{⎕TID ⍵,4⊃DRC.Wait'C1.',⍵}&¨'Q4' 'Q2' 'Q1' 'Q3'

⍝ --- Trace Samples.TestFTPClient
⍝ --- Trace Samples.TestWebServer
⍝ --- Other Samples? Fork?
⍝ --- End of Intro to Conga --- Back to PPT ---




